#ifndef __HX1838_H__
#define __HX1838_H__

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/slab.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/poll.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/interrupt.h>
#include <linux/of_irq.h>
#include <linux/kthread.h>
#include <linux/delay.h>
#include <linux/input.h>

#define HX1838_NUMBER	5

struct hx1838_handle{
	int use_flag;
	int gpio;
	int irq;
	struct input_dev *input;
	struct hrtimer rep_timer;
	struct hrtimer timeout_timer;
	unsigned int current_key;
	int edge_count;
	long long edge_time[68];
};

#endif
